package com.sunjob.mrotech.mapper;

import com.sunjob.common.domain.tech.TransShape;
import com.sunjob.common.domain.tech.TransShape2;
import com.sunjob.common.domain.tech.TransShape3;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;


import java.time.LocalDateTime;
import java.util.List;

/**
 * @author : xiaozhoutongxue
 * @date : 2022/8/2 9:48
 */
@Mapper
@Component
public interface ShapeMapper {
    /** 增加某一构型的一条数据 */
    int insertShapeComposition(Long shape_id, Long shape2_id, Long shape3_id, String create_by, LocalDateTime create_time);

    /** 根据id更新某构型的三级构型(实则删除某一构型的一条数据) */
    int upadateShape3Composition(Long shape_id,Long shape2_id ,Long shape3_id);

    /** 增加一级结构*/
    int insertShape(Long shape_id,String shape_name,String create_by, LocalDateTime create_time);

    /** 增加二级结构*/
    int insertShape2(Long shape2_id,String shape2_name,String create_by, LocalDateTime create_time);

    /** 增加三级结构*/
    int insertShape3(Long shape3_id,String shape3_name,Long shape2_id,String create_by, LocalDateTime create_time);

    /** 查找所有构型(名字和id)*/
    List<TransShape> getAllShape(int limit);

    /** 模糊查找一级构型名和id*/
    List<TransShape> getShapeByLittle(String little);

    /** 根据id查找一级以下的所有结构*/
    TransShape getShapeCompositionById(Long id);

    /** 根据id查找一级下的二级结构*/
    TransShape getShape2CompositionById(Long id);

    /** 根据二级结构id查找所属的所有三级结构（不涉及某个具体构型）*/
    TransShape2 getShapa3CompositionByShape2Id(Long id);

    /** 查找所有二级结构 */
    List<TransShape2> getAllShapa2Composition();

    /** 只跟据二级id查找所有三级结构 */
    List<TransShape3> getAllShapa3Composition(Long shape2_id);

    /** 根据id删除构型(仅仅将status的值设置为1) */
    int deleteShapeById(Long shape_id,String update_by, LocalDateTime update_time);

    /** 增加一二中间表*/
    int insertShapeAndShape2(Long shape_id,Long shape2_id,String create_by, LocalDateTime create_time);
}

